var express = require('express');
var app = express();

// 设置get 路由方法

// 设置环境变量
/**
 *
 *  env 运行时环境，默认为 process.env.NODE_ENV 或者 "development"
 trust proxy 激活反向代理，默认未激活状态
 jsonp callback name 修改默认?callback=的jsonp回调的名字
 json replacer JSON replacer 替换时的回调, 默认为null
 json spaces JSON 响应的空格数量，开发环境下是2 , 生产环境是0
 case sensitive routing 路由的大小写敏感, 默认是关闭状态， "/Foo" 和"/foo" 是一样的
 strict routing 路由的严格格式, 默认情况下 "/foo" 和 "/foo/" 是被同样对待的
 view cache 模板缓存，在生产环境中是默认开启的
 view engine 模板引擎
 views 模板的目录, 默认是"process.cwd() + ./views"
 */
app.set('ENV',"TEST")
console.log(app.get('ENV'))
app.disable('trust proxy');
app.enable('trust proxy') // 支持https
console.log(app.get('trust proxy'))
// 所有环境
app.set('title', 'My Application');
// 只用于开发环境
if ('development' == app.get('env')) { // app.configure("development",function())
    app.set('db uri', 'localhost/dev');
}
// 只用于生产环境
if ('production' == app.get('env')) {
    app.set('db uri', 'n.n.n.n/prod');
}
console.log(1,process.env.NODE_ENV)
// 程序级配置
console.log(app.locals)
// 中间件
// 一个简单的 logger
app.use(function(res, req, next){
    console.log('%s %s', req.method, req.url);
    next();
});
app.use(express.logger());
app.use(express.compress()); //通过gzip / deflate压缩响应数据
// app.use(express.cookieSession());
// app.use(express.cookieParser());
// app.use(express.cookieParser('some secret'));
// app.use(express.csrf());
// app.use(express.methodOverride());
// app.use(express.bodyParser());
// 静态文件
// GET /javascripts/jquery.js
app.use(express.directory('public'))
app.use(express.static(__dirname + '/public'));
app.use(express.static(__dirname + '/files'));
app.use(express.static(__dirname + '/uploads'));
// 响应
// 路由参数处理
app.param("user",function(res,req , next, id){
    // User.find(id, function(err, user){
    //     if (err) {
    //         next(err);
    //     } else if (user) {
    //         req.user = user;
    //         next();
    //     } else {
    //         next(new Error('failed to load user'));
    //     }
    // });
    next();
});

app.get("/",function (res,req,next) {
    // req.send("ok")
    next();
})
app.post("/",function (res,req,next) {
    // req.send("ok")
    next();
})
app.all('/api/cc', function (res,req) {
    // req.send('route *');
    req.status(404).sendfile('public/404.html');
})
app.all('/api/*', function (res, req) {
    req.send('/api/*');
});
// var middleware = [loadForum, loadThread];
app.get('/forum/:fid/thread/:tid', function(res,req){
    console.log(res.params)
    req.send(res.params['fid'])
})

app.post('/forum/:fid/thread/:tid', function(res,r){
    console.log(res.params)
    req.send(res.params['fid'])
})
app.use(function(err, res, req, next){
    console.error(err.stack);
    req.send(500, 'Something broke!');
});
console.log(app.routes)

// 启动服务
var server = app.listen(3000, function () {
    console.log('Listening on port %d', server.addreqs().port);
});